#include "http_model.h"

//funzioni di costruzione del pacchetto http a partire dal modello: settano la linea iniziale e la lunghezza del payload
void http_build_req(http_req *r, http_model *m) {
	set_http_reqline(r, m->method, m->uri, m->version);
	set_header_int(r->headers, HTTP_RQST_HEAD_CONT_LEN, r->data_len);
}

void http_build_resp(http_resp *r, http_model *m) {
	set_http_respline(r, m->version, m->code, m->code);
	set_header_int(r->headers, HTTP_RQST_HEAD_CONT_LEN, m->resp_content_len);
	r->data_len = m->resp_content_len;
}

//controllano la correttezza del pacchetto 'r' rispetto al modello 'm'
int http_check_req(http_req *r, http_model *m) {
	if (r->method==m->method
		   && r->uri==m->uri
		   && r->version==m->version)
		return 1;
	else return 0;
}

int http_check_resp(http_resp *r, http_model *m) {
	if(r->code==m->code
		  && r->reason==m->code
		  && r->version==m->version)
		return 1;
	else return 0;
}
